What is @walletconnect/encoding?
@walletconnect/encoding is a utility library for encoding and decoding data in various formats. It is commonly used in blockchain and cryptocurrency applications to handle data transformations.
What are @walletconnect/encoding's main functionalities?
Hex Encoding
This feature allows you to convert a hexadecimal string to a byte array and vice versa. It is useful for handling data in hexadecimal format, which is common in blockchain applications.
const { hexToArray, arrayToHex } = require('@walletconnect/encoding');
const hexString = '0x48656c6c6f';
const byteArray = hexToArray(hexString);
console.log(byteArray); // [72, 101, 108, 108, 111]
const newHexString = arrayToHex(byteArray);
console.log(newHexString); // '0x48656c6c6f'
Base64 Encoding
This feature allows you to convert a Base64 string to a byte array and vice versa. Base64 encoding is often used for data serialization and transmission.
const { base64ToArray, arrayToBase64 } = require('@walletconnect/encoding');
const base64String = 'SGVsbG8=';
const byteArray = base64ToArray(base64String);
console.log(byteArray); // [72, 101, 108, 108, 111]
const newBase64String = arrayToBase64(byteArray);
console.log(newBase64String); // 'SGVsbG8='
UTF-8 Encoding
This feature allows you to convert a UTF-8 string to a byte array and vice versa. UTF-8 is a standard encoding for text data.
const { utf8ToArray, arrayToUtf8 } = require('@walletconnect/encoding');
const utf8String = 'Hello';
const byteArray = utf8ToArray(utf8String);
console.log(byteArray); // [72, 101, 108, 108, 111]
const newUtf8String = arrayToUtf8(byteArray);
console.log(newUtf8String); // 'Hello'
Other packages similar to @walletconnect/encoding
base64-js
base64-js provides utilities for encoding and decoding data in Base64 format. It is similar to @walletconnect/encoding's Base64 functionality but does not support other encoding formats like hex or UTF-8.
buffer
The buffer package from Node.js provides a way to handle binary data. It supports various encoding formats including hex, Base64, and UTF-8. It is more comprehensive compared to @walletconnect/encoding but also more complex.
text-encoding
text-encoding is a polyfill for the TextEncoder and TextDecoder APIs, which provide methods for encoding and decoding text in various formats like UTF-8. It is focused on text encoding and does not support hex or Base64.
@walletconnect/encoding
Byte encoding utils
API
function bufferToUtf8(buf: Buffer): string;
function bufferToHex(buf: Buffer, prefixed?: boolean): string;
function bufferToArray(buf: Buffer): Uint8Array;
function bufferToNumber(buf: Buffer): number;
function bufferToBinary(buf: Buffer): string;
function utf8ToBuffer(utf8: string): Buffer;
function utf8ToHex(utf8: string, prefixed?: boolean): string;
function utf8ToArray(utf8: string): Uint8Array;
function utf8ToNumber(utf8: string): number;
function utf8ToBinary(utf8: string): string;
function hexToBuffer(hex: string): Buffer;
function hexToUtf8(hex: string): string;
function hexToArray(hex: string): Uint8Array;
function hexToNumber(hex: string): number;
function hexToBinary(hex: string): string;
function arrayToBuffer(arr: Uint8Array): Buffer;
function arrayToUtf8(arr: Uint8Array): string;
function arrayToHex(arr: Uint8Array, prefixed?: boolean): string;
function arrayToNumber(arr: Uint8Array): number;
function arrayToBinary(arr: Uint8Array): string;
function numberToBuffer(num: number): Buffer;
function numberToUtf8(num: number): string;
function numberToHex(num: number, prefixed?: boolean): string;
function numberToArray(num: number): Uint8Array;
function numberToBinary(num: number): string;
function binaryToBuffer(bin: string): Buffer;
function binaryToArray(bin: string): Uint8Array;
function binaryToHex(bin: string | string, prefixed?: boolean): string;
function binaryToUtf8(bin: string): string;
function binaryToNumber(bin: string): number;
function isBinaryString(str: any): boolean;
function isHexString(str: any, length?: number): boolean;
function isBuffer(val: any): boolean;
function isTypedArray(val: any): boolean;
function isArrayBuffer(val: any): boolean;
function getType(val: any);
function getEncoding(str: string);
function concatBuffers(...args: Buffer[]): Buffer;
function concatArrays(...args: Uint8Array[]): Uint8Array;
function trimLeft(data: Buffer, length: number): Buffer;
function trimRight(data: Buffer, length: number): Buffer;
function calcByteLength(length: number, byteSize: number): number;
function splitBytes(str: string, byteSize: number): string[];
function sanitizeBytes(str: string, byteSize: number, padding: string): string;
function swapBytes(str: string): string;
function swapHex(str: string): string;
function padLeft(str: string, length: number, padding?: string): string;
function padRight(str: string, length: number, padding?: string): string;
function removeHexPrefix(hex: string): string;
function addHexPrefix(hex: string): string;
function sanitizeHex(hex: string): string;
function removeHexLeadingZeros(hex: string): string;